The vCenter VAMI service must protect against MIME sniffing.


Overview

Finding ID Version Rule ID IA Controls Severity
V-259159 VCLD-80-000101 SV-259159r1003736_rule Medium
Description
MIME sniffing was, and still is, a technique used by some web browsers to examine the content of a particular asset. This is done for the purpose of determining an asset's file format. This technique is useful in the event that there is not enough metadata information present for a particular asset, thus leaving the possibility that the browser interprets the asset incorrectly. Although MIME sniffing can be useful to determine an asset's correct file format, it can also cause a security vulnerability. This vulnerability can be quite dangerous both for site owners as well as site visitors. This is because an attacker can leverage MIME sniffing to send an XSS (Cross Site Scripting) attack.
STIG Date
VMware vSphere 8.0 vCenter Appliance Management Interface (VAMI) Security Technical Implementation Guide 2024-07-11

Details

Check Text ( C-62899r1003734_chk )
At the command prompt, run the following command:

# /opt/vmware/cap_lighttpd/sbin/lighttpd -p -f /var/lib/vmware/cap-lighttpd/lighttpd.conf 2>/dev/null|awk '/setenv\.add-response-header/,/\)/'|sed -e 's/^[ ]*//'|grep "X-Content-Type-Options"

Example result:

"X-Content-Type-Options" => "nosniff",

If the response header "X-Content-Type-Options" is missing or not configured to "nosniff", this is a finding.

Note: The command must be run from a bash shell and not from a shell generated by the "appliance shell". Use the "chsh" command to change the shell for the account to "/bin/bash". Refer to KB Article 2100508 for more details:

https://kb.vmware.com/s/article/2100508
Fix Text (F-62808r1003735_fix)
Navigate to and open:

/opt/vmware/etc/lighttpd/applmgmt-lighttpd.conf

If header "X-Content-Type-Options" is not present, add the following line to the end of the file:

setenv.add-response-header += ("X-Content-Type-Options" => "nosniff")

If header "X-Content-Type-Options" is present and not set to "nosniff", update the value as shown below:

"X-Content-Type-Options" => "nosniff",

Note: The last line in the parameter does not need a trailing comma if part of a multi-line configuration.

Restart the service with the following command:

# systemctl restart cap-lighttpd